package warpper;

import object.Point;

/**
 * JDK5之后java推出了一个新特性:自动拆装箱
 */
public class IntegerDemo3 {
    public static void main(String[] args) {

        /*
            当我们直接将基本类型赋值给引用类型时，就会触发编译器的自动装箱特性:
            编译器会在编译成class文件时，将下面代码改造(补充转换操作):
            Integer in = Integer.valueOf(123);
         */
        Integer in = 123;

        /*
            当我们将包装类直接赋值给基本类型变量时，会触发编译器的自动拆箱特性
            编译器编译时会补充转换代码:
            int i = in.intValue();
         */
        int i = in;

        doSome("hello");
        doSome(new Point(1,2));
        /*
            本身int值不继承Object，这里会触发自动装箱
            doSome(Integer.valueOf(123));
         */
        doSome(123);
    }

    public static void doSome(Object o){

    }
}
